package com.example.web_chat.config;

import com.example.web_chat.model.User;
import com.example.web_chat.toolsUtil.Constant;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;

//创建一个TestWebSocketAPI用来处理通信过程中的各个流程
@Component
public class TestWebSocketAPI extends TextWebSocketHandler {

    @Override
    public void afterConnectionEstablished(WebSocketSession session) throws Exception {
        //这个方法是在websocket建立完连接之后，调用的方法

        System.out.println("完成建立连接");
    }

    @Override
    protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
        //这个方法是在websocket收到消息时，调用的方法
        //TextMessage message 表示收到的消息是啥·
        //session是一个webSocket会话，里面记录了通信双方是谁
        System.out.println("成功收到消息" + message.toString());
        session.sendMessage(message);
    }

    @Override
    public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
       //这个方法是在websockt连接出现异常时，调用的方法
        //
        System.out.println("连接出现异常");
    }

    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        //这个方法是在连接关闭时调用的方法
        System.out.println("连接关闭");
    }
}
